💡 AI 인사이트

🤖 AI가 여기에 결과를 출력합니다...

댓글 커뮤니티

쿠팡이벤트

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

검색

    로딩 중이에요... 🐣

    [코담] 웹개발·실전 프로젝트·AI까지, 파이썬·장고의 모든것을 담아낸 강의와 개발 노트

    02 04 문제와 정답 | ✅ 저자: 이유정(박사)

    💭직접 풀어보세요.

    📝 문제1] 문자열 "apple,banana,grape"를 쉼표 , 기준으로 나눠서 출력하세요.

    ✅ 정답 코드:

    fruits = "apple, banana, grape"
    print(fruits.split(","))
    

    🖨️ 출력 결과:

    ['apple', 'banana', 'grape']
    

    📝 문제2] 사용자에게 공백으로 구분된 취미 목록을 입력받고, 리스트로 출력해보세요.

    ✅ 정답 코드:

    hobbies = input("취미를 입력하세요 (공백으로 구분): ") print(hobbies.split())
    

    🖨️ 출력 결과 (예시 입력: "독서 여행 영화"):

    ['독서', '여행', '영화']
    

    🔍 해설:

    • 입력된 문자열에서 공백 기준으로 단어들을 나눠 리스트로 변환합니다.
    • .split()의 기본값은 공백입니다.

    📝 문제3] "2025/05/08" 문자열을 / 기준으로 자르고, 연도, 월, 일을 각각 출력하세요.

    ✅ 정답 코드:

    date = "2025/05/08" 
    year, month, day = date.split("/") 
    
    print("연도:", year) 
    print("월:", month) 
    print("일:", day)
    

    🖨️ 출력 결과:

    연도: 2025 
    월: 04 
    일: 30
    

    🔍 해설:

    • /를 기준으로 문자열을 세 부분으로 나눕니다.
    • 변수 여러 개에 한 번에 저장(언패킹)도 가능합니다.

    📝 문제4] 사용자에게 이름과 나이를 입력받고, f-문자열로 자기소개 문장을 출력하세요.

    🖨️ 출력 결과 (예시 입력: 이름 = 유정, 나이 = 20):

    제 이름은 유정이고, 나이는 20살입니다.
    

    ✅ 정답 코드:

    name = input("이름을 입력하세요: ") 
    age = input("나이를 입력하세요: ")  
    
    print(f"제 이름은 {name}이고, 나이는 {age}살입니다.")
    

    🔍 해설:

    • input()으로 받은 값을 바로 f-문자열 안에서 사용합니다.
    • 문자열 합치기 없이 깔끔하게 출력할 수 있습니다.

    📝 문제5] 반지름이 5인 원의 넓이를 f-문자열을 이용해 출력하세요. (원주율은 3.14)

    원의 넓이 공식] 넓이 = 원주율 × 반지름²

    ✅ 정답 코드:

    radius = 5 
    PI = 3.14 
    area = PI * radius * radius  
    
    print(f"반지름이 {radius}인 원의 넓이는 {area}입니다.")
    

    🖨️ 출력 결과:

    반지름이 5인 원의 넓이는 78.5입니다.
    

    🔍 해설:

    • 계산된 값도 f-문자열 내에서 출력 가능 → {area}
    • 여러 값을 손쉽게 한 줄에 표현할 수 있습니다.

    📝 문제6] 두 숫자를 입력받아 합을 출력하는데, f-문자열을 사용해 보세요.

    ✅ 정답 코드:

    a = int(input("첫 번째 숫자: ")) 
    b = int(input("두 번째 숫자: ")) 
    total = a + b  
    
    print(f"{a}{b}의 합은 {total}입니다.")
    

    🖨️ 출력 결과 (예시 입력: 7, 3):

    73의 합은 10입니다.
    

    🔍 해설:

    • 수식 결과를 {} 안에 넣어 출력할 수 있어 계산과 표현을 동시에 처리 가능
    • 변수뿐 아니라 수식도 직접 넣을 수 있음 → f"{a + b}"도 가능

    📝 문제7] "이름: {} / 국가: {}" 형식의 문자열 템플릿을 만들어 여러 나라 이름을 아래 출력결과와 같이 반복 출력해보세요.

    🖨️ 출력 결과:

    이름: Eunice / 국가: Korea 
    이름: Emma / 국가: USA 
    이름: Akira / 국가: Japan
    

    ✨ 힌트: 같은 형식을 반복할 때 f-string보다 format()이 더 효율적입니다. 문자열 재사용이 가능해 코드가 간결해집니다.

    ✅ 정답 코드:

    template = "이름: {} / 국가: {}"  
    
    print(template.format("Eunice", "Korea")) print(template.format("Emma", "USA")) print(template.format("Akira", "Japan"))
    

    📝 문제8] 출력 위치를 맞추기 위해 {:<10}, {:>10}, {:^10} 같은 정렬 포맷을 사용하여 출력 결과와 같이 작성해보세요.

    🖨️ 출력 결과:

    left      |     right|  center   
    

    ✅ 정답 코드:

    print("{:<10} | {:>10} | {:^10}".format("left", "right", "center"))
    

    🔢 자릿수 인덱스 참고표

    idx 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
    내용 left +공백6칸 공백 5칸 + right(글자5개) 공백2칸 + center(글자6) + 공백2칸

    🔍 해설:

    • {:<10} : 왼쪽 정렬 (10칸)
    • {:>10} : 오른쪽 정렬
    • {:^10} : 가운데 정렬
    • f-string에서도 가능하지만, 반복되거나 복잡할 땐 format()이 더 깔끔합니다.
    • 영문(ASCII 문자)은 한 글자당 1칸을 차지하고, 한글(유니코드 한글)은 한 글자당 2칸을 차지하는 것처럼 보입니다. 하지만 실제로는 한글도 1글자 = 1칸(width 1)로 계산됩니다.

    📝 문제9] 단어 3개가 있습니다. Python, Eunice, loves 이것을 format()을 사용해서 아래 출력 결과와 같이 출력해 보세요.

    🖨️ 출력 결과:

    Eunice loves Python
    

    ✅ 정답 코드:

    print("{1} {2} {0}".format("Python", "Eunice", "loves"))
    

    🔍 해설:

    • {1}은 두 번째 인자 "Eunice"를 먼저 출력
    • f-string은 위치 지정이 어려워, 순서 교체에는 format()이 더 유연합니다.

    📝 문제10] 사용자에게 이름을 입력받아 대문자로 출력해보세요.

    ✨ 힌트: input()으로 이름을 문자열로 입력받음 .upper()로 대문자로 변환

    ✅ 정답 코드:

    name = input("이름을 입력하세요: ") 
    print("대문자 이름:", name.upper())
    

    🖨️ 출력 결과 (예시 입력: eunice):

    대문자 이름: EUNICE
    

    📝 문제11] 문자열 "PyTHon Is FUN"을 모두 소문자로 바꿔서 출력하세요.

    ✨ 힌트: lower( ) 함수는 소문자로 변환해 줍니다.

    ✅ 정답 코드:

    msg = "PyTHon Is FUN" 
    print("소문자 변환:", msg.lower())
    

    🖨️ 출력 결과:

    소문자 변환: python is fun
    

    📝 문제12] 이메일 아이디 비교
    사용자가 입력한 이메일이 "admin@site.com"인지 확인하려고 합니다.
    대소문자 상관없이 비교하기 위해 소문자로 변환해서 비교하세요.

    ✨ 힌트: 사용자가 입력한 이메일을 소문자로 변환한 후 조건문을 통해 비교 연산자로 작성하세요.

    ✅ 정답 코드:

    email = input("이메일 입력: ")
    if email.lower() == "admin@site.com":
        print("관리자 계정입니다.")
    else:
        print("일반 사용자입니다.")
    

    🖨️ 출력 결과 (예시 입력: Admin@Site.Com):

    관리자 계정입니다.
    

    📝 문제13] 사용자에게 입력받은 이름 양옆의 공백을 제거한 후 출력해보세요.

    ✨ 힌트:

    • input()으로 입력받은 값은 양옆에 공백을 포함할 수 있습니다.
    • .strip()을 사용하여 양옆의 공백을 제거하고 출력합니다.

    ✅ 정답 코드:

    name = input("이름을 입력하세요: ") 
    print("공백 제거된 이름:", name.strip())
    

    🖨️ 출력 결과 (예시 입력: " Eunice "):

    공백 제거된 이름: Eunice
    

    📝 문제14] 문자열 " Python is great! \n"에서 양옆의 공백과 개행 문자 (\n)를 제거해보세요.

    ✨ 힌트:

    • strip()은 문자열에서 양옆의 공백과 개행 문자를 모두 제거합니다.
    • 중간에 있는 공백은 영향을 받지 않습니다.

    ✅ 정답 코드:

    msg = "   Python is great! \n" 
    print("공백 및 개행 문자 제거:", msg.strip())
    

    🖨️ 출력 결과:

    공백 및 개행 문자 제거: Python is great!
    

    📝 문제15] 사용자에게 이메일 주소를 입력받고, 양옆의 공백을 제거한 후 확인 메시지를 출력하세요.

    ✨ 힌트: 사용자가 입력한 이메일에 양옆에 공백이 있을 수 있습니다. .strip( )으로 공백을 제거하고, 확인 메시지를 출력합니다.

    ✅ 정답 코드:

    email = input("이메일을 입력하세요: ") 
    print("공백 제거된 이메일:", email.strip())
    

    🖨️ 출력 결과 (예시 입력: " admin@site.com "):

    공백 제거된 이메일: admin@site.com
    

    📝 문제16] 문자열 "I love coffee and coffee loves me"에서 "coffee"가 처음 등장하는 위치를 찾아 출력하세요.

    ✅ 정답 코드:

    text = "I love coffee and coffee loves me" 
    print("처음 등장 위치:", text.find("coffee"))
    

    🖨️ 출력 결과:

    처음 등장 위치: 7
    

    🔍 해설:

    • "coffee""I love coffee"에서 7번째 인덱스에 처음 나옵니다.

    📝 문제17] 같은 문자열에서 "coffee"가 마지막으로 등장하는 위치를 출력해보세요.

    ✅ 정답 코드:

    text = "I love coffee and coffee loves me" 
    print("마지막 등장 위치:", text.rfind("coffee"))
    

    🖨️ 출력 결과:

    마지막 등장 위치: 17
    

    🔍 해설:

    • "coffee""and coffee loves me" 부분에서 17번째 인덱스에 마지막으로 등장합니다.

    📝 문제18] 문자열 "hello world"에서 "Python"이 포함되어 있는지 확인하고, 없으면 "찾을 수 없음"을 출력하세요.

    text = "hello world"

    ✨ 힌트: find()는 찾는 문자열이 없으면 -1을 반환합니다. 이를 조건문에서 활용하여 문자열의 존재 여부를 확인할 수 있습니다.

    ✅ 정답 코드:

    text = "hello world" 
    if text.find("Python") == -1:     
    	print("찾을 수 없음") 
    else:     
    	print("찾은 위치:", text.find("Python"))
    

    🖨️ 출력 결과:

    찾을 수 없음
    
    TOP
    preload preload